package com.resource.service;

import java.util.List;

import cn.hutool.json.JSONObject;
import com.resource.dto.OfficeProjectInfoDto;
import com.resource.dto.ProjectImportDto;
import com.resource.dto.ProjectTaskImportDto;
import com.resource.dto.ProjectUpdateImportDto;
import com.resource.query.ProjectQuery;
import com.resource.query.ProjectValidateQuery;

/**
 * 泛微项目对接
 *
 * @Author: xianggaoxiong
 * @Date: 18:24 2020/9/22
 */
public interface OfficeProjectService {

	/**
	 * 通过id获取项目信息
	 *
	 * @param id
	 * @return
	 */
	OfficeProjectInfoDto getProjectInfoById(Integer id);

	/**
	 * 通过查询条件获取项目列表
	 *
	 * @param query
	 * @return
	 */
	List<OfficeProjectInfoDto> getProjectList(ProjectQuery query);

	/**
	 * 新增项目
	 *
	 * @param dto
	 */
	void addProject(OfficeProjectInfoDto dto);

	/**
	 * 更新项目
	 *
	 * @param dto
	 */
	void modifyProject(OfficeProjectInfoDto dto);

	/**
	 * 删除项目
	 *
	 * @param managerId
	 */
	void removeProject(Integer managerId);

	/**
	 * 项目流程表单校验
	 *
	 * @param query
	 * @return
	 */
	String processFormValidate(ProjectValidateQuery query);

	/**
	 * 外发修改合同关联项目
	 * 
	 * @param projectQuery
	 * @return
	 */
	String modifyContract(ProjectQuery projectQuery);

	/**
	 * 导入项目
	 *
	 * @param dto
	 */
	void importProject(ProjectImportDto dto);

	/**
	 * 导入任务
	 * 
	 * @param dto
	 */
	void importProjectTask(ProjectTaskImportDto dto,String userId);

	/**
	 * 项目导出
	 * @return
	 */
	List<JSONObject> exportProject();


	/**
	 * 导入更新项目
	 *
	 * @param dto
	 */
	void importUpdateProject(ProjectUpdateImportDto dto);
}
